﻿#region

using System;
using System.Windows.Forms;
using APP_PGM.DB;
using APP_PGM.GUI.Pomocnicze;
using WMAAN.Uzytki;
using WMAAN.Uzytki.Kryptografia;

#endregion

namespace APP_PGM.GUI.Formularze
{
    public partial class FormAplikacja : Form
    {
        private DetektorAktywnosciUzytkownika detektorAktywnosciUzytkownika;

        public FormAplikacja()
        {
            InitializeComponent();
        }

        public void Init()
        {
            detektorAktywnosciUzytkownika = new DetektorAktywnosciUzytkownika();
            detektorAktywnosciUzytkownika.WykrytoAktywnoscUzytkownika +=
                detektorAktywnosciUzytkownika_WykrytoAktywnoscUzytkownika;
            controlLogowanieUzytkownika.ZalogowanoUzytkownika += comLogowanie_ZalogowanoUzytkownika;
        }

        void comLogowanie_ZalogowanoUzytkownika(object sender, Kontrolki.ControlLogowanie.ZalogowanoUzytkownikaHandlerArgs args)
        {
            
            controlOknoGlowne.ustawStatusZalogowanegoUzytkownika(args.Imie, args.Nazwisko, args.Oddzial, args.Uprawnienie);
            Zalogowanie();

            PGM baza = PGM.Instancja();
            int id = DaneGlobalne.Uzytkownik.id_uzytkownicy;

            if (DaneGlobalne.Uzytkownik.pytania_uzytkownikaRow == null)
            {
                FormZmianaPytania formZmianaPytania = new FormZmianaPytania();
                formZmianaPytania.Init(false);
                formZmianaPytania.ShowDialog(this);
            }
            if (DaneGlobalne.Uzytkownik.zmiana_hasla)
            {
                FormZmianaHasla formZmianaHasla = new FormZmianaHasla();
                formZmianaHasla.Init(DaneGlobalne.Uzytkownik.haslo.Deszyfruj());
                formZmianaHasla.ShowDialog();
            }

            

            
            baza.AktualizujUzytkownikow();
            DaneGlobalne.Uzytkownik = baza.dane.uzytkownicy.FindByid_uzytkownicy(id);
            controlOknoGlowne.Init();

        }

        private void detektorAktywnosciUzytkownika_WykrytoAktywnoscUzytkownika(object sender,
                                                                               DetektorAktywnosciUzytkownika.
                                                                                   WykrytoAktywnoscUzytkownikaHandlerArgs
                                                                                   args)
        {
            Console.WriteLine(args.OstatniaWykrytoAktywnoscUzytkownika);
        }

        private void FormOknoGlowne_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }

        public void Zalogowanie()
        {
            controlOknoGlowne.Visible = true;
            controlLogowanieUzytkownika.Wyczysc();
            controlLogowanieUzytkownika.Visible = false;
            
        }

        public void Wylogowanie()
        {
            controlOknoGlowne.Visible = false;
            controlLogowanieUzytkownika.Visible = true;
        }

        private void FormAplikacja_Shown(object sender, EventArgs e)
        {
            controlLogowanieUzytkownika.AutoLogin();
        }


    }
}